package com.rongke.model;

import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.IdType;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.rongke.utils.DateJsonDeserializer;
import com.rongke.utils.DateJsonSerializer;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.util.List;

/**
 * @version : Ver 1.0
 * @ExperienceRecommend
 * @体验推荐(experience_recommend)
 */
//json序列化时忽略bean中的一些属性序列化和反序列化时抛出的异常
@JsonIgnoreProperties(value = {"handler"})
@TableName("experience_recommend")
public class ExperienceRecommend implements Serializable {
    @TableField(exist = false)
    private static final long serialVersionUID = 1L;

    /**
     * @备注:体验推荐id
     * @字段:id BIGINT(19)
     */
    @TableId(type = IdType.AUTO)
    private java.lang.Long id;

    /**
     * @备注:推荐标题
     * @字段:title VARCHAR(33)
     */
    private java.lang.String title;

    /**
     * @备注:推荐内容
     * @字段:content TEXT(65535)
     */
    private java.lang.String content;

    /**
     * @备注:图片(多图请用逗号分隔)
     * @字段:picture_url TEXT(65535)
     */
    private java.lang.String pictureUrl;
    /**
     * @备注:是否加精 0否1是
     * @字段:is_home int(2)
     */
    private Integer isHome;
    /**
     * @备注:是否置顶 0否1是
     * @字段:is_home int(2)
     */
    private Integer isUp;
    /**
     * @备注:是否已领过奖励 0否1是
     * @字段:is_home int(2)
     */
    private Integer isRewarded;

    /*
     */
/**
 * @备注:推荐人id
 * @字段:user_id BIGINT(19)
 *//*

	@ManyToOne
	@JoinColumn(name="userId", columnDefinition="BIGINT(19) COMMENT '推荐人id'")
	private Muser user;

	*/
/**
 * @备注:商品id
 * @字段:goods_id BIGINT(19)
 *//*

	@ManyToOne
	@JoinColumn(name="goodsId", columnDefinition="BIGINT(19) COMMENT '商品id'")
	private Goods goods;
*/
    /**
     * @备注:推荐人id
     * @字段:user_id BIGINT(19)
     */
    private java.lang.Long userId;
    /**
     * 备注:推荐人id
     */
    @TableField(exist = false)
    private Muser user;


    /**
     * @备注:商品id,多个以逗号分隔
     * @字段:goods_id BIGINT(19)
     */
    private java.lang.String goodsId;
    /**
     * 备注:商品,可能多个
     */
    @TableField(exist = false)
    private List<Goods> goodsList;

    /**
     * 评论数
     */
    @TableField(exist = false)
    private Integer commentNum;

    /**
     * 某用户是否已点赞
     */
    @TableField(exist = false)
    private Integer isThumb;

    /**
     * @备注:点赞数量
     * @字段:thumbs_num INT(11)
     */
    private java.lang.Integer thumbsNum;

    /**
     * 审核通过状态（1 已审核通过 2 未审核未通过 3 已审核未通过）默认为2
     */
    private java.lang.Integer checkStatus;

    /**
     * @备注:创建时间
     * @字段:gmt_datetime DATETIME(19)
     */
    @JsonSerialize(using = DateJsonSerializer.class)
    @JsonDeserialize(using = DateJsonDeserializer.class)
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private java.util.Date gmtDatetime;

    /**
     * @备注:更新时间
     * @字段:upt_datetime DATETIME(19)
     */
    @JsonSerialize(using = DateJsonSerializer.class)
    @JsonDeserialize(using = DateJsonDeserializer.class)
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private java.util.Date uptDatetime;

    public ExperienceRecommend() {
    }

    public ExperienceRecommend(
            java.lang.Long id
    ) {
        this.id = id;
    }


    public void setId(java.lang.Long id) {
        this.id = id;
    }

    public java.lang.Long getId() {
        return this.id;
    }


    public void setTitle(java.lang.String title) {
        this.title = title;
    }

    public java.lang.String getTitle() {
        return this.title;
    }


    public void setContent(java.lang.String content) {
        this.content = content;
    }

    public java.lang.String getContent() {
        return this.content;
    }


    public void setPictureUrl(java.lang.String pictureUrl) {
        this.pictureUrl = pictureUrl;
    }

    public java.lang.String getPictureUrl() {
        return this.pictureUrl;
    }

    public Long getUserId() {
        return userId;
    }

    public void setUserId(Long userId) {
        this.userId = userId;
    }

    public String getGoodsId() {
        return goodsId;
    }

    public void setGoodsId(String goodsId) {
        this.goodsId = goodsId;
    }

    public List<Goods> getGoodsList() {
        return goodsList;
    }

    public void setGoodsList(List<Goods> goodsList) {
        this.goodsList = goodsList;
    }

    public void setUser(Muser user) {
        this.user = user;
    }

    public Muser getUser() {
        return this.user;
    }

    public Integer getCommentNum() {
        return commentNum;
    }

    public void setCommentNum(Integer commentNum) {
        this.commentNum = commentNum;
    }

    public Integer getIsThumb() {
        return isThumb;
    }

    public void setIsThumb(Integer isThumb) {
        this.isThumb = isThumb;
    }

    public Integer getThumbsNum() {
        return thumbsNum;
    }

    public void setThumbsNum(Integer thumbsNum) {
        this.thumbsNum = thumbsNum;
    }

    public Integer getCheckStatus() {
        return checkStatus;
    }

    public void setCheckStatus(Integer checkStatus) {
        this.checkStatus = checkStatus;
    }

    public void setGmtDatetime(java.util.Date gmtDatetime) {
        this.gmtDatetime = gmtDatetime;
    }

    public java.util.Date getGmtDatetime() {
        return this.gmtDatetime;
    }


    public void setUptDatetime(java.util.Date uptDatetime) {
        this.uptDatetime = uptDatetime;
    }

    public java.util.Date getUptDatetime() {
        return this.uptDatetime;
    }

    public Integer getIsHome() {
        return isHome;
    }

    public void setIsHome(Integer isHome) {
        this.isHome = isHome;
    }

    public Integer getIsUp() {
        return isUp;
    }

    public void setIsUp(Integer isUp) {
        this.isUp = isUp;
    }

    public Integer getIsRewarded() {
        return isRewarded;
    }

    public void setIsRewarded(Integer isRewarded) {
        this.isRewarded = isRewarded;
    }
}
